package com.rskj.cashbook.dao;

import com.rskj.cashbook.vo.SqlTxtMonitorLog;
import org.apache.ibatis.annotations.Param;

import java.time.LocalDateTime;
import java.util.List;
import java.util.Map;

public interface SqlTxtMonitorLogDao {

    /**
     * 插入单条SQL监控日志
     */
    void insert(SqlTxtMonitorLog log);

    /**
     * 批量插入SQL监控日志
     */
    void insertBatch(List<SqlTxtMonitorLog> logs);

    /**
     * 根据条件查询SQL监控日志
     */
    List<SqlTxtMonitorLog> selectByCondition(SqlTxtMonitorLog condition);

    /**
     * 查询慢查询SQL
     */
    List<SqlTxtMonitorLog> selectSlowQueries(@Param("threshold") Long threshold);

    /**
     * 查询错误SQL
     */
    List<SqlTxtMonitorLog> selectErrorQueries();

    /**
     * 清理过期日志
     */
    int deleteExpiredLogs(@Param("expireTime") LocalDateTime expireTime);

    /**
     * 获取统计信息
     */
    Map<String, Object> getStatistics(@Param("startTime") LocalDateTime startTime);
}
